Conventional performance measurement methods within a microprocessor require events describing how the microprocessor performs and a monitoring unit that correlates the events, to assess performance and to detect a bottleneck of performance in the microprocessor and/or in a system utilizing the microprocessor. The monitoring unit distributes multiple signals to monitored units of the microprocessor to collect the events describing interactions among the monitored units in the microprocessor. Conventional performance measurement methods utilize a bus dedicated to distribute and to collect each signal from the monitoring unit. In conventional performance measurement methods, the bus carries more events than the monitoring unit needs due to multiplexing of events onto the bus. Due to the number of signals for monitoring purposes and inefficient use of the bus, conventional performance measurement methods have a significant wiring and routing overheads within the microprocessor.
Thus, there is a need for an apparatus that overcomes at least one of the preceding disadvantages of current apparatuses of monitoring performance within a microprocessor.